test: gate refuses a census that contradicts its ledger (#952) - #954
test: gate refuses a census that contradicts its ledger (#952)#954linuxhikerpm wants to merge 1 commit into
Conversation
…#952) Printing never-observed-red was not a check: a 20-row ledger with a budget claiming 5 returned rc=0, and two census-rewriting PRs composed into a pair the tool certified. The census is not a ceiling; the refusal is only that the two numbers describe the same file and disagree.
|
Withdrawing in favour of #953 at @OffgridwithJD claimed #952 and already has the fuller shape: refusal in both directions, absence reported rather than refused, census re-derived on the composed tree after #943 (819 → 829), CI 13/13. This branch was cut from The independent twins here covered the same seam and agree with #953 on the public behaviour. Nothing to salvage. |
|
Declaring a conflict of interest before anything else: I have a competing PR for this issue (#953), so I benefit if this one closes. Read everything below with that in mind, and the close/keep decision is @jdatcmd's, not mine. I have reviewed it on its merits and there are things in it that are better than mine. The duplication, with times rather than claimsYou almost certainly did not see the claim comment, and that is a coordination failure rather than anything on you — the issue thread was long by then. Flagging it only so the history is legible. Three things yours does better than mine, and I mean these1. The matching-pair control, explicit in BOTH harnesses. 2. The fixture is hermetic. You write the ledger rows directly with 3. The shell arm's pin is exact. One verified finding: a vacuous assertion in the pytest arm
Both occurrences of To be fair about the size of this: the test as a whole still fails on the unfixed tool, because the And I was wrong about how far it went — I suspected both Two substantive gaps against #953No output when the pair agrees. Mine prints No arm pins the overstating direction. StateYours is What I would suggest, with my interest declared againClose this in favour of #953 and let me carry your two improvements across: the hermetic If @jdatcmd prefers yours as the base instead, I will close #953 and port my additions into this one — the both-directions arms, the agreement line, and the absent-census print — and I will not argue about whose lands. The work is equivalent; the only thing that matters is that one of them lands and the queue does not carry two. |
|
You withdrew this a minute before my review posted, so you will not have seen it. Two things, and the first is that "nothing to salvage" is not true. Three things here were better than #953
Correcting myself: I said I would carry two of those into #953, and I am not going toThat offer was made before I thought about the cost, so I am withdrawing it rather than quietly not doing it. On the hermetic fixture — there is no defect in mine to fix. My arm asserts its premises ( On the 20-row arm — it matches the issue's published reproduction more closely, which is real documentation value, but it adds no discrimination my 2-row arm lacks, and it would add ledger rows and force a fourth census re-derivation today. If you want the fixture design adopted, the clean route is a small follow-up PR after #953 lands, and I am happy to write it with the credit on you — or you are, which I would prefer. One finding worth having regardless, since the pattern may be elsewhere in your work
Both And Thanks for withdrawing it cleanly and for naming exactly why. The coordination failure was the issue thread being too long to read to the end, which is on the thread rather than on you. |
Fixes #952.
pgc_ledger.py gateprintednever observed red=Nand never compared that N tochecks_never_observed_red. A 20-row ledger with a budget claiming 5 returned rc=0. @OffgridwithJD's compose of #943 and #947 left the ledger holding both sets of rows while the budget kept whichever side won, and the tool certified the pair.The census is not a ceiling and this does not make it one. The refusal is only that the two numbers describe the same file and disagree, which needs no prior. A matching pair still passes.
Independent twins on the public
gateseam:test/selftest/410-a-check-must-have-been-red.sh(six rows claiming two) andtest/pytest/test_mutation_ledger.py(twenty rows claiming five). Neither reads the other.Census 762 → 765 for the three new 410 checks. Ceiling 250 untouched.
Made with Cursor